const cart = require("../sql/cart");
const sql = require("../sql");
const jwt = require("jsonwebtoken");

module.exports = (req, res)=>{
    // 接收前端发送数据，并处理默认值
    const {id, check="", num="", del="", token} = req.body;
    // 解析token验证是否是登录状态
    jwt.verify(token, "杨树林er", (err, tokenData)=>{
        if(err){
            res.send({code:0, msg:"登录失效"})
        }else{
            // 先获取到购物车信息
            sql.get({
                colObj: cart,
                where: {username: tokenData.username}
            }).then(cartData=>{
                // 解析出购物车信息中的商品信息部分
                const goodsData = cartData[0].goodsData;
                // 从商品信息中查询到本次要修改的商品
                let i = 0;
                goodsData.some((val,idx)=>{
                    i = idx;
                    return val.goodsId === id;
                })
                // 是否要修改选中状态
                if(check !== ""){
                    goodsData[i].check = check==="true" ? true : false;
                }
                // 是否要修改数量
                if(num){
                    goodsData[i].num = num-0;
                }
                // 是否要删除
                if(del === "true"){
                    goodsData.splice(i ,1);
                }
                // 将修改之后的商品信息，重新存回购物车集合
                sql.set(cart, {username: tokenData.username}, { goodsData })
                .then(()=>{
                    res.send({code:1, msg:"修改成功"});
                })
            })
        }
    })
}